Computer systems and other types of consumer electronic devices are commonly linked to each other and to peripheral devices using a myriad of different types of cables and connectors. As these devices grow in number and variety, their cables and connectors can often become quite cumbersome to work with. Accordingly, efforts are underway to develop technologies allowing hardware connections to be replaced with wireless ones.
One such technology is the Bluetooth technology. Bluetooth is the code name for a technology specification for short-range radio links that will allow the many proprietary cables that connect devices to one another to be replaced with short-range radio links.
The Bluetooth technology is based on a high-performance, yet low-cost, integrated radio transceiver. For instance, Bluetooth transceivers built into both a cellular telephone and a laptop computer system would replace the cables used today to connect a laptop to a cellular telephone. Printers, personal digital assistants (palmtop computer systems, hand-held devices and the like), desktop computer systems, fax machines, keyboards, joysticks and virtually any other digital device can be part of a Bluetooth system. Bluetooth radio technology can also provide a universal bridge to existing data networks and a mechanism to form small private ad hoc groupings (“scatternets” or “piconets”) of connected devices away from fixed network infrastructures.
The Bluetooth technology allows Bluetooth devices to “discover” other Bluetooth devices that are within range and then connect with those devices, either automatically or at a user's discretion. The Generic Access Profile (GAP) of the Bluetooth specification (Section 6 of “Specification of the Bluetooth System, Core,” version 1.0B, dated Dec. 1, 1999, herein incorporated by reference as background) describes the processes by which Bluetooth devices discover each other. The device discovery process has two primary steps: an inquiry step (described in Sections 6.1 and 6.2 of the Bluetooth specification), and a name discovery step (described in Section 6.3 of the Bluetooth specification). In the inquiry step, the Bluetooth devices make their presence known to each other and exchange attributes (e.g., addresses) needed to further the connection process. In the name discovery step, user-friendly names are exchanged to help a user identify Bluetooth devices that are in the environment. The inquiry and discovery steps are described in further detail below.
Prior Art FIG. 1 is a data flow diagram 10 illustrating the device discovery process used by one Bluetooth device (initiator device 20) to discover another Bluetooth device (e.g., responder device 30). First, initiator device 20 sends (broadcasts) a general inquiry message (e.g., inquiry 40) over the nominal range of a typical Bluetooth device (e.g., approximately 10 meters). When initiator device 20 broadcasts an inquiry 40, it typically remains in the inquiry state for 10.24 seconds (this time is programmable, but the Bluetooth specification recommends 10.24 seconds).
In order to receive and respond to inquiry 40, responder devices 30 and 32 must be “discoverable” (e.g., the devices must be scanning for inquiry messages). According to the Bluetooth specification referenced above, a discoverable device enters into “inquiry scan” (scanning for inquiry messages) every 2.56 seconds and remains in inquiry scan for 10.625 milliseconds.
Responder devices 30 and 32 send inquiry responses 42a and 42b, respectively, to initiator device 20 in response to inquiry 40. Inquiry responses 42a and 42b provide the Bluetooth device addresses (a numerical address or a device access code) for responder devices 30 and 32, and optionally provide additional information such as the clock, class of device and page scan mode. Inquiry responses 42a and 42b do not provide a name (or user-friendly name) for responder devices 30 and 32. The user-friendly name can be up to 248 characters long and is not provided in order to reduce the length of the inquiry responses.
Initiator device 20 can therefore receive an inquiry response from multiple Bluetooth devices (e.g., responder devices 30 and 32), providing each devices' numerical address at least. Generally, a user will not be able to identify one type of responder device over another based only on the device's numerical address. For example, there may be two printers in proximity, and the user generally will not be able to tell which printer to connect with based on the numerical address. However, “user-friendly names” can be used to identify each printer's location and features, allowing the user to make a selection of one over the other. Therefore, initiator device 20 needs to discover and display the user-friendly name for each of the devices that responded, so that the user can select the appropriate device with which to connect.
To accomplish this, initiator device 20 must connect one device at a time to each of the responder devices 30 and 32 in order to request a user-friendly name. Accordingly, initiator device 20 sends pages 44a and 44b to each device that responded to inquiry 40. In response to the pages 44a and 44b, responder devices 30 and 32 send page responses 46a and 46b, respectively. Page responses 46a and 46b provide the user-friendly name for responder devices 30 and 32, respectively.
Next, initiator device 20 will send name requests 48a and 48b to responder devices 30 and 32, respectively. In response to name request 48a, responder device 30 sends name request response 50a to initiator device 20. Similarly, in response to name request 48b, responder device 32 sends name request response 50b to initiator device 20. Name request responses 50a and 50b provide the user-friendly names for responding devices 30 and 32, respectively. The user-friendly names are displayed to the user, who can then select one or more of the responder devices with which to connect.
There are a number of disadvantages associated with the Bluetooth device discovery process described above. One disadvantage is that, while in discoverable mode, responder devices 30 and 32 are scanning for and receiving messages, and thus are consuming power. In addition, when an inquiry 40 is received, responder devices 30 and 32 will send an inquiry response (e.g., 42a and 42b, respectively) to initiator device 20, consuming more power. Thus, even when responder devices 30 and 32 are powered down (turned off), they can still be scanning for, receiving and responding to inquiry messages, and as such will continue to consume power.
Power consumption is of particular concern to limited power devices (battery-powered devices) such as laptop computer systems, cell phones, personal digital assistants (PDAs), including palmtop computer systems, hand-held devices, and the like. These devices are limited in size and weight, and therefore they typically use smaller and lighter batteries of limited capacity. As described above, when PDAs and other such devices are turned off (powered down), they may remain discoverable in the Bluetooth environment. Consequently, even when powered down, these devices will scan for and receive general inquiry messages (e.g., inquiry 40), and will send responses (e.g., inquiry response 42a) to such messages, and thus will continue to draw from their limited battery power. Thus, the Bluetooth device discovery process can consume the limited power (battery) resources that are typically available to PDAs and other such devices. Accordingly, more frequent battery charges may be needed, inconveniencing the user.
This problem is exacerbated as Bluetooth devices grow in number and popularity. With more Bluetooth devices in use, a device (such as responder device 30) will receive inquiries (e.g., 40c–40h) from each of the many possible initiator devices in broadcast range. Furthermore, each inquiry 40c–40h engenders an inquiry response from responder device 30, accelerating the rate of power consumption.
Another disadvantage to the Bluetooth device discovery process is that it can become unmanageably large, especially with the increasing number of Bluetooth devices. That is, as the number of Bluetooth devices grows, an increasing number of messages (inquiries and inquiry responses, and pages and page responses) will be generated as each device undertakes the device discovery process. The probability that these messages will collide with other will likely increase, increasing the frequency at which messages have to be retransmitted. Devices responding to one message will have to ignore other messages, and the messages that are ignored will have to be retransmitted. The increase in messages will further increase the burden on the limited power resources of both initiator and responding Bluetooth devices.
In addition, in the name discovery step of the device discovery process, each device provides its user-friendly name for display to the user. As the number of Bluetooth devices continues to grow, the length of the list of user-friendly names will grow as well, which can complicate the user experience.
Yet another problem with the Bluetooth device discovery process is that an initiator device 20 can undertake the process and connect with responder device 730 without the user's knowledge and permission. Thus, for example, initiator device 20 can retrieve the user-friendly name and the address of responder device 30, even if the user has no desire to share this information with unknown devices.
One possible solution to the problems described above is to allow the user to manage the device discovery process. However, this solution is also problematic because it requires the user to learn and understand the device discovery process defined by the Bluetooth specification. This may be beyond the capability of some users, while other users would instead prefer a user-friendly process that either fits into a usage model that they already understand.
Thus, the Bluetooth device discovery process presents a number of problems. Finding a solution to these problems is made more complex because the solution must be substantially compliant with the Bluetooth specification. That is, many Bluetooth devices are being designed and manufactured according to the Bluetooth specification. Consequently, a solution that relies on a significant deviation from the Bluetooth specification will create new problems, such as incompatibility between newer Bluetooth devices and legacy Bluetooth devices. An aim of the Bluetooth specification is to provide a level of standardization across all Bluetooth devices, and a substantial deviation from the specification would be contrary to that aim. Accordingly, any solution to the prior art problems described above should be satisfactorily consistent with the Bluetooth specification, or it should be a solution that can be incorporated into legacy Bluetooth devices.